package course.p4_list;

public interface List {

    /**
     * 实时计算长度
     * @return 链表实际长度
     */
    int calSize();

    /**
     * 返回长度
     * @return 链表元素个数
     */
    int size();

    /**
     * 打印链表
     * @return 链表的字符串表示
     */
    String toString();

    /**
     * 向指定位置插入元素
     * @param element
     * @param position
     */
    void insert(int element,int position);


    /**
     * 向链表的结尾添加元素
     * @param element
     */
    void add(int element);

    /**
     * 在链表首部添加元素
     * @param element
     */
    void addFirst(int element);


    /**
     * 删除链表指定位置的元素
     * @param position
     */
    int remove(int position);


    /**
     * 删除第一个等于元素element的节点
     * @param element
     */
    void removeFirst(int element);

    /**
     * 更新指定位置的元素
     * @param element
     * @param position
     */
    void update(int element,int position);

    /**
     * 获取指定位置的元素
     * @param position
     */
    int get(int position);


}
